#include "scene.h"
#include<stdlib.h>

scene::scene(QObject *parent) : QGraphicsScene(parent)
{
  int i=0;   //i为坐标
  for(i=0;i<16;i++){       //new16张图元
      this->item[i]=new Item;    //new 图元
      this->item[i]->setPos(i/4*this->item[i]->boundingRect().width(),i%4*this->item[i]->boundingRect().height());//宽高,设置每张图元坐标
      this->addItem(this->item[i]);       //把图元放进场景
  }
  this->ptimer=new QTimer;  //定时器
  connect(this->ptimer,SIGNAL(timeout()),this,SLOT(showMouse()));

  //检验能否弹出老鼠计时器
  //this->ptimer->start(500);     //设置时间弹老鼠
}
void scene::showMouse()
{
    int count=1;   //弹出一只老鼠
    int i=0;
    //老鼠弹出后，恢复草坪图片;      做法：在弹下一只老鼠前先遍历完16张图将全换成草坪
    for(i=0;i<16;i++){
        this->item[i]->setPic(":/bg/qt.picture/bg1.jpg");    //
        this->item[i]->setMouse(false);   //鼠标点击是草坪判断为假
    }
    //随机坑里弹出老鼠
    for(i=0;i<count;i++){
        int index=rand()%16;        //随机数组下标
        this->item[index]->setPic(":/bg/qt.picture/daqian.jpg");   //随机草坪换图
        this->item[index]->setMouse(true);  //鼠标点击是老鼠判断为真
    }

}
//实现开始的槽函数
void scene::startGame()
{
    //点击图元有反应
    int i=0;
    for(i=0;i<16;i++){
        this->item[i]->setStart(true);
    }

    this->ptimer->start(500);
}
//实现暂停的槽函数
void scene::pauseGame()
{
    //点击图元没有反应
    int i=0;
    for(i=0;i<16;i++){
        this->item[i]->setStart(false);
    }

    this->ptimer->stop();
}

//实现结束的槽函数
void scene::stopGame()
{
    //点击图元没有反应
    int i=0;
    for(i=0;i<16;i++){
        this->item[i]->setStart(false);
    }


    this->ptimer->stop();  //停下

    //清空界面，初始化
    for(i=0;i<16;i++){
        this->item[i]->setPic(":/bg/qt.picture/bg1.jpg");
        this->item[i]->setMouse(false);   //鼠标点击是草坪判断为假
    }
}
